It is known in the art of computer graphics to create motion graphics programs called “compositions.” Compositions are a relatively simple way in which a user can intuitively create motion graphical effects (such as a moving background, flashing text, etc.) without extensive knowledge of how to program a computer. An exemplary program that allows for the creation of composition files is known as the Quartz Composer™, manufactured by Apple Computer, Inc. Further information concerning the Quartz Composer can be found in the following documents, copies of which are filed with the Information Disclosure Statement filed with this disclosure, and which are incorporated by reference herein. “Working With Quartz Composer” (published Feb. 13, 2006 at http://developer.apple.com/graphicsimaging/quartz/quartzcomposer.html); “Quartz Composer Programming Guide” (published Jul. 24, 2006).
Quartz Composer is based on and brings together several graphical and non-graphical technologies, such as Quartz 2D, Core Image, Core Video, OpenGL, QuickTime, MIDI System Services, and Real Simple Syndication. As a result, once created, compositions can be incorporated into any number of applications, such as iPhoto, iMove, iChat, PhotoBooth, Final Cut Pro, screen savers, etc.
When creating a composition file 20, and as shown in FIG. 1, the editor portion 10 of the Quartz Composer program contains a grid 12 for assembling and connecting “patches” 14, which are selected from a library 16. Patches 14 are like functions, and may take input parameters (the left side of the patches) and provide output results (the right side of the patches). Within the editor 10, patches 14 can be visually connected together by links 18 to create a composition (Comp1.qtz) which essentially defines the data flow or the manner in which graphical motion data is processed by the composition.
Consider the exemplary composition illustrated in FIG. 1. As shown, four patches 14 have been selected from the library. Each of these patches 14 performs a function, and together the overall effect of the composition provides a “glow effect” applied to an input image. Thus, patch “Image Importer” generates a bitmap image from a source file (such as a JPEG or BMP file); patch “Gaussian Blur” blurs an image by an amount specified by a definable radius; patch “Addition” adds the blurred image to the original bitmap image to superimpose the two; and patch “Billboard” renders the final image on the user's screen. Of course, composition files can also be used to manipulate video (i.e., motion graphics), which constitutes a series of images.
The composition file 20, shown in further detail in FIG. 2, is typically constructed of metadata 30 having the header information for the file (such as copyright information, author name, creation date, etc.); the topology of the composition 32 as defined by the patches 14 and links 18; and any assets 34 (data) necessary to the composition (such as a corporate logo or other data structures).
So constructed, a composition file 20, like the patches 14 from which it is created, may have various inputs and outputs as well. This is illustrated in FIG. 3, which shows a simplification of the exemplary “glow effect” composition file 20 of FIG. 1. As shown, the composition file 20 ultimately receives an input image and produces an output image. However, because the various patches 14 specify other various inputs, other inputs can be present as well. For example, patch “Gaussian Blur” allows the user to specify a radius; patch “Billboard” allow a user to specify color, etc., of the resulting output image. A user can enter values for such other inputs during the creation or editing of the composition, such as by mousing over the input in question (e.g., radius) and typing in an appropriate number. Otherwise, default values can be automatically populated for those inputs. (Note that other patch inputs such as “X and Y Position” and “Rotation” are not shown as inputs to the composition file 20 because of their minor significance in the mind of the designer of the composition file. In other words, the designer in this example has configured the composition file such that X and Y position and Rotation are not modifiable by the end user.).
A benefit of the Quartz Composer format is the ease with which a user can quickly create a relatively complicate graphical composition. However, that same complexity makes it rather difficult for one user to use the compositions of another. This is because, as just noted with respect to FIG. 3, different compositions will have different input and output characteristics depending on which patches 14 have been used to create the composition. Suppose a user is considering several composition files 20 (*.qtz) present on his company's server, and is considering whether or not they would be of use to his current graphical project. Such a user cannot know absent trial and error which composition files 20 might be suitable for his graphical project. For example, a user might be trying to manipulate an image, and accordingly any compositions missing image inputs would be inapplicable to that user. But such an inconsistency would not be known to the user until he tried to use this file and realized that the selected composition file was unsuitable for his project.
A solution to this problem is therefore desirable, and is provided in this disclosure.